Businesses generate and store large amounts of data. Businesses commonly store their data in database systems, some of which may be managed by a different business. The database system may have different services and data access mechanisms than what a business uses for other data or services of its organization. Businesses frequently use tools that integrate both processes of the database system as well as local applications managed and/or hosted by the business itself. The integrated tools can help reduce the inconvenience and performance loss associated with a user switching between local applications and processes of the database system. Such integrated tools can be referred to as “mashups,” which are frequently browser based combinations of services of a local host and processes of a remote server. The mashup is typically created with different frames providing content from different sources.
Mashups implemented in browsers typically encounter a restriction on accessing data across domains. The domains refer to services hosted by different servers or different systems. Thus, services hosted by a database system that provide access to data stored in the database can be a different domain than functions provided by an application hosted by a different server. The cross domain restrictions are particularly noticeable in browser based mashup systems. In browser based mashups, a browser running on a consumer or client device accesses a database system remotely, and includes functions hosted by a local server. Modern browsers impose cross domain restrictions, which prevent an application from one domain from accessing another domain. Such a policy makes sense, to prevent simply creating a mashup of a local application with a target system, which could then theoretically grant access to an attacker if the cross domain restrictions were not in place.
However, there are times when mashups are created specifically to provide integration of services from different domains. Thus, the developer and the database system owner would like a site (or web location) from one domain to be able to access a remote, separate domain. Traditionally, such mashups are only possible with server side proxies written specifically to allow communication from the local server to the server and/or database system of the other domain. Thus, a client device makes a request on its local server, within its own domain, and the local server accesses the remote domain. The traditional process requires development of the interface mechanisms on the server side, with different interfaces required for each different cross domain interaction desired.
While the burden of creating individualized server side interfaces for a small number of cross domain interactions, as the number of cross domain interactions increases, the burden quickly becomes very significant. Thus, for implementation of a database system that may receive requests for data from many external domains, the development requirements may be unmanageable. The added burden may be even higher for modern and developing database systems having different architectures from the traditional unitary database systems.
Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein. An overview is provided below, followed by a more detailed description with reference to the drawings.